#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Mikan 例外 パッケージ

Mikan Python Web Framework
"""

__author__ = "K.Sonohara"
__status__ = "develop"
__version__ = "0.0.0_b"
__date__    = "2013/03/24"
__license__ = 'LGPL'

# ------------------------------------------------------------
## インポート
# ------------------------------------------------------------
# Python

# ESiPC
from esipc.resource.iniresource import ESiPCINIFileResourceBundle

# Mikan
from mikan.core import MIKAN_HTTP_STATUS
from mikan.exception import AbstractMikanStatusException


# ------------------------------------------------------------
## 変数
# ------------------------------------------------------------
## リソース変数
RESOURCE = ESiPCINIFileResourceBundle(__file__)

# ------------------------------------------------------------
## 関数
# ------------------------------------------------------------

# ------------------------------------------------------------
## 国際化対応リソース関数
# @param key キー
# @param default 初期値
# @param locale 言語
# @param resource リソース
def _(key, default, locale=None, resource=RESOURCE):
	try:
		return resource.get_string(key, default, locale)
	except:
		return default

# ------------------------------------------------------------
## クラス
# ------------------------------------------------------------

# ------------------------------------------------------------
## Mikan 例外 クラス
#
class MikanItemException(AbstractMikanStatusException):

	# ----------------------------------------------------
	## コンストラクタ
	#  @param request リクエスト
	#  @param status エラーコード
	def __init__(self, request, params=None, status=MIKAN_HTTP_STATUS.STATUS_INTERNAL_SERVER_ERROR):
		# 継承元処理
		super(MikanItemException, self).__init__(request, status, params=params, resource=RESOURCE)

# ------------------------------------------------------------
## Mikan 例外 クラス
#
class MikanRequiredItemException(MikanItemException):

	# ----------------------------------------------------
	## コンストラクタ
	#  @param request リクエスト
	#  @param status エラーコード
	def __init__(self, request, attribute, status=MIKAN_HTTP_STATUS.STATUS_INTERNAL_SERVER_ERROR):
		if attribute != None:
			params = (attribute.itemcaption)
		else:
			params = None

		# 継承元処理
		super(MikanRequiredItemException, self).__init__(request, params=params, status=status)

# ------------------------------------------------------------
## Mikan 例外 クラス
#
class MikanLockItemException(AbstractMikanStatusException):

	# ----------------------------------------------------
	## コンストラクタ
	#  @param request リクエスト
	#  @param status エラーコード
	def __init__(self, request, attribute, status=MIKAN_HTTP_STATUS.STATUS_INTERNAL_SERVER_ERROR):
		# 継承元処理
		super(MikanLockItemException, self).__init__(request, status, resource=RESOURCE)

# ------------------------------------------------------------
## Mikan 例外 クラス
#
class MikanUnlockItemException(AbstractMikanStatusException):

	# ----------------------------------------------------
	## コンストラクタ
	#  @param request リクエスト
	#  @param status エラーコード
	def __init__(self, request, attribute, status=MIKAN_HTTP_STATUS.STATUS_INTERNAL_SERVER_ERROR):
		# 継承元処理
		super(MikanUnlockItemException, self).__init__(request, status, resource=RESOURCE)

# ------------------------------------------------------------
## メイン関数
# ------------------------------------------------------------
if __name__ == '__main__':
	pass

# ------------------------------------------------------------
